using System;

namespace Atomic.Libraries.Physics.Units
{
	/// <summary>
	/// Convertion factors between different unit systems. Defined relative to the unit system used internally in the Atomic library.
	/// The base energy unit is eV and the base length unit is Å. Energy is used as a base unit instead of mass.
	/// http://en.wikipedia.org/w/index.php?title=International_System_of_Units&oldid=596637756#Base_units
	/// </summary>
	public interface IUnitSystem
	{
		/// <summary>
		/// Scaling factor for converting length from this unit system to units used internally (Å).
		/// </summary>
		double LengthScaling
		{
			get;
		}

		/// <summary>
		/// Scaling factor for converting time from this unit system to units used internally (s).
		/// </summary>
		double TimeScaling
		{
			get;
		}

		/// <summary>
		/// Scaling factor for converting energy from this unit system to units used internally (eV).
		/// </summary>
		double EnergyScaling
		{
			get;
		}

		/// <summary>
		/// Scaling factor for converting temperature from this unit system to units used internally (K).
		/// </summary>
		double TemperatureScaling
		{
			get;
		}
	}
}
